package com.example.demo.listener;

import com.example.demo.entity.HashChainEntity;
import com.example.demo.entity.Order;
import jakarta.persistence.PreUpdate;


/**
 * 哈希链实体监听器，防止直接更新现有记录
 */
public class HashChainEntityListener {

    /**
     * 禁止直接更新现有记录，确保所有更新都通过创建新版本的方式进行
     */
    @PreUpdate
    public void preUpdate(HashChainEntity entity) {
        // 对于订单实体，禁止直接更新
        if (entity instanceof Order) {
            throw new UnsupportedOperationException("不允许直接更新记录，请通过updateOrder方法创建新版本");
        }
    }
}
